/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ui;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import javax.swing.JPanel;

/**
 *
 * @author juanan
 */
public class PanelBacterias extends JPanel {
    
    private int numDia;
    private int [][]bacterias;
    
    public PanelBacterias() {
        bacterias = null;
    }
    
    public void pintarDia(int numDia, int [][]bacterias) {
        this.bacterias = bacterias;
        this.numDia = numDia;
        
        repaint();
    }
    
    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D gg = (Graphics2D) g.create();
        
        //Pintamos el cuadrado
        int x;
        int y;
        int lado;
        //Sacamos las proporciones para pintarlo centrado
        if(getHeight() < getWidth()) {
            lado = getHeight();
            x = (getWidth() - lado)/2;
            y = 0;
        } else {
            lado = getWidth();
            x = 0;
            y = (getHeight() - lado)/2;
        }
        
        BufferedImage bufferedI;
        Graphics2D ggBuffered;
        if(bacterias == null) {
            gg.setColor(Color.WHITE);
            gg.fillRect(x, y, lado, lado);
            gg.setColor(Color.BLACK);
            gg.drawString("Para comenzar, clicka en el botón de simulación", x + 50, y + lado / 2);
        } else {
            bufferedI = new BufferedImage(bacterias.length, bacterias.length,
                BufferedImage.TYPE_INT_RGB);
            ggBuffered = bufferedI.createGraphics();
            
            for(int i=0; i<bacterias.length; i++) {
                for(int j=0; j<bacterias[i].length; j++) {
                    int cantidad = bacterias[i][j];
                    Color colorCasilla;
                    
                    if(cantidad >= 20) {
                        colorCasilla = Color.DARK_GRAY;
                    } else if(cantidad >= 15 && cantidad < 20) {
                        colorCasilla = Color.RED;
                    } else if(cantidad >= 10 && cantidad < 15) {
                        colorCasilla = Color.ORANGE;
                    } else if(cantidad >= 5 && cantidad < 10) {
                        colorCasilla = Color.YELLOW;
                    } else if(cantidad>= 1 && cantidad < 5) {
                        colorCasilla = Color.GREEN;
                    } else {
                        colorCasilla = Color.WHITE;
                    }
                    
                    ggBuffered.setColor(colorCasilla);
                    ggBuffered.fillRect(i, j, 1, 1);
                }
            }
            
            
            gg.drawImage(bufferedI, x, y, lado, lado, this);
        }
    }
}